package com.mq.direct;

import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author ytj
 * @date 2024/1/11
 */
@Configuration
public class RabbitConfig {

    @Bean
    public Queue demoQueue() {
        /**
         * 1、队列名称
         * 2、是否持久化
         * 3、是否排他
         * 4、是否自动删除
         * */
        return new Queue(Demo1Message.QUEUE_NAME,true,false,false);
    }

    @Bean
    public Exchange demoExchange() {
        /**
         * direct模式
         * 1、交换机名称
         * 2、是否持久化
         * 3、是否自动删除
         * */
        return new DirectExchange(Demo1Message.ExCHANGE_NAME,true,false);
    }

    @Bean
    public Binding demoBinding() {
        /**
         * 1、队列名称
         * 2、交换机名称
         * 3、路由键
         * */
        return BindingBuilder.bind(demoQueue()).to(demoExchange()).with(Demo1Message.ROUTE_KEY).noargs();
    }
}
